@misc{availsim,
 author = {Diego Ongaro},
 title = {Availability simulator for Raft (source code)},
 note = {\url{https://github.com/ongardie/availsim}},
 key = {avail},
}

@misc{aws-faq,
 title = {Amazon Virtual Private Cloud FAQs},
 note = {\url{https://aws.amazon.com/vpc/faqs/}},
 key = {amazon},
}

@misc{azure:availability,
 title = {Azure Active Directory (AAD) Availability Proxy for .Net source code},
 note = {\url{https://github.com/WindowsAzureAD/availability-proxy-for-rest-services}},
 key = {azure},
},

@inproceedings{Baker:2011,
 title = {Megastore: providing scalable, highly available storage for interactive services},
 author  = {Jason Baker and Chris Bond and James C. Corbett and JJ Furman and Andrey Khorlin and James Larson and Jean-Michel Leon and Yawei Li and Alexander Lloyd and Vadim Yushprakh},
 year  = 2011,
 URL = {http://www.cidrdb.org/cidr2011/Papers/CIDR11_Paper32.pdf},
 booktitle = {Proc. CIDR'11, Conference on Innovative Data System Research},
 pages = {223--234}
}

@book{Bertot:2004,
   title = "Interactive theorem proving and program development : Coq'Art : the calculus of inductive constructions",
   author = "Bertot, Yves and Castéran, Pierre and Huet, Gérard and Paulin-Mohring, Christine",
   series = "Texts in Theoretical Computer Science",
   publisher = "Springer",
   url = "http://opac.inria.fr/record=b1101046",
   isbn = "978-3-540-20854-9",
   year = 2004
}

@INPROCEEDINGS{Biely:2012,
 author={Biely, M. and Milosevic, Z. and Santos, N. and Schiper, A}, 
 title={S-Paxos: offloading the leader for high throughput state machine replication}, 
 booktitle={Proc. SRDS'12, IEEE Symposium on Reliable Distributed Systems}, 
 year={2012},
 pages={111-120}, 
 doi={10.1109/SRDS.2012.66}, 
 ISSN={1060-9857},
}

@misc{Blomstedt:2013,
  author = {Blomstedt, Joseph},
  title = {Bringing consistency to Riak},
  howpublished = {RICON West (conference talk)},
  note = {\url{http://basho.com/ricon-west-videos-strong-consistency-in-riak/}},
  month = october,
  year = {2013},
}

@article{Boichat:2003,
 author = {Boichat, Romain and Dutta, Partha and Fr{\o}lund, Svend and Guerraoui, Rachid},
 title = {Deconstructing Paxos},
 journal = {SIGACT News},
 issue_date = {March 2003},
 volume = {34},
 number = {1},
 month = mar,
 year = {2003},
 issn = {0163-5700},
 pages = {47--67},
 numpages = {21},
 url = {http://doi.acm.org/10.1145/637437.637447},
 doi = {10.1145/637437.637447},
 acmid = {637447},
 publisher = {ACM},
 address = {New York, NY, USA},
}

@misc{btrfssnapshots,
 author = {Jonathan Corbet},
 title = {Btrfs: subvolumes and snapshots},
 key = {Btrfs},
 note = {\url{http://lwn.net/Articles/579009/}},
 month=jan,
 year = {2014},
}

@inproceedings{Burrows:2006,
 author = {Burrows, Mike},
 title = {The {Chubby} lock service for loosely-coupled distributed systems},
 booktitle = {Proc. OSDI'06, USENIX Symposium on Operating Systems Design and Implementation},
 year = {2006},
 isbn = {1-931971-47-1},
 location = {Seattle, Washington},
 pages = {335--350},
 numpages = {16},
 url = {http://dl.acm.org/citation.cfm?id=1298455.1298487},
 acmid = {1298487},
 publisher = {USENIX},
}

@inproceedings{Calder:2011,
 author = {Calder, Brad and Wang, Ju and Ogus, Aaron and Nilakantan, Niranjan and Skjolsvold, Arild and McKelvie, Sam and Xu, Yikang and Srivastav, Shashwat and Wu, Jiesheng and Simitci, Huseyin and Haridas, Jaidev and Uddaraju, Chakravarthy and Khatri, Hemal and Edwards, Andrew and Bedekar, Vaman and Mainali, Shane and Abbasi, Rafay and Agarwal, Arpit and Haq, Mian Fahim ul and Haq, Muhammad Ikram ul and Bhardwaj, Deepali and Dayanand, Sowmya and Adusumilli, Anitha and McNett, Marvin and Sankaran, Sriram and Manivannan, Kavitha and Rigas, Leonidas},
 title = {Windows Azure Storage: a highly available cloud storage service with strong consistency},
 booktitle = {Proc. SOSP'11, ACM Symposium on Operating Systems Principles},
 year = {2011},
 isbn = {978-1-4503-0977-6},
 location = {Cascais, Portugal},
 pages = {143--157},
 numpages = {15},
 url = {http://doi.acm.org/10.1145/2043556.2043571},
 doi = {10.1145/2043556.2043571},
 acmid = {2043571},
 publisher = {ACM},
} 

@misc{Cassandra,
 title = {Apache Cassandra project website},
 note ={\url{https://cassandra.apache.org}},
 key = {Apache Cassandra},
}

@inproceedings{Castro:1999,
 author = {Castro, Miguel and Liskov, Barbara},
 title = {Practical Byzantine fault tolerance},
 booktitle = {Proc. OSDI'99, USENIX Symposium on Operating Systems Design and Implementation},
 year = {1999},
 isbn = {1-880446-39-1},
 location = {New Orleans, Louisiana, USA},
 pages = {173--186},
 numpages = {14},
 url = {http://dl.acm.org/citation.cfm?id=296806.296824},
 acmid = {296824},
 publisher = {USENIX},
} 

@misc{ceph:monitor,
 title = {Ceph documentation: monitor config reference},
 note = {\url{http://ceph.com/docs/master/rados/configuration/mon-config-ref/}},
 key = {Ceph},
}

@article{Chandra:1996,
 author = {Chandra, Tushar Deepak and Toueg, Sam},
 title = {Unreliable failure detectors for reliable distributed systems},
 journal = {Journal of the ACM},
 issue_date = {March 1996},
 volume = {43},
 number = {2},
 month = mar,
 year = {1996},
 issn = {0004-5411},
 pages = {225--267},
 numpages = {43},
 url = {http://doi.acm.org/10.1145/226643.226647},
 doi = {10.1145/226643.226647},
 acmid = {226647},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {Byzantine Generals' problem, agreement problem, asynchronous systems, atomic broadcast, commit problem, consensus problem, crash failures, failure detection, fault-tolerance, message passing, partial synchrony, processor failures},
}

@inproceedings{Chandra:2007,
 author = {Chandra, Tushar D. and Griesemer, Robert and Redstone, Joshua},
 title = {Paxos made live: an engineering perspective},
 booktitle = {Proc. PODC'07, ACM Symposium on Principles of Distributed Computing},
 year = {2007},
 isbn = {978-1-59593-616-5},
 location = {Portland, Oregon, USA},
 pages = {398--407},
 numpages = {10},
 url = {http://doi.acm.org/10.1145/1281100.1281103},
 doi = {10.1145/1281100.1281103},
 acmid = {1281103},
 publisher = {ACM},
}

@inproceedings{Chang:2006,
 author = {Chang, Fay and Dean, Jeffrey and Ghemawat, Sanjay and Hsieh, Wilson C. and Wallach, Deborah A. and Burrows, Mike and Chandra, Tushar and Fikes, Andrew and Gruber, Robert E.},
 title = {Bigtable: a distributed storage system for structured data},
 booktitle = {Proc. OSDI'06, USENIX Symposium on Operating Systems Design and Implementation},
 year = {2006},
 location = {Seattle, WA},
 pages = {205--218},
 numpages = {1},
 url = {http://portal.acm.org/citation.cfm?id=1267308.1267323},
 acmid = {1267323},
 publisher = {USENIX},
} 

@inproceedings{Chun:2008,
  author = {Chun, Byung-Gon and Ratnasamy, Sylvia and Kohler, Eddie},
  booktitle = {Proc. NSDI'08, USENIX Conference on Networked Systems Design and Implementation},
  ee = {http://www.usenix.org/events/nsdi08/tech/full_papers/chun/chun.pdf},
  isbn = {978-1-931971-58-4},
  keywords = {dblp},
  pages = {393-406},
  publisher = {USENIX},
  timestamp = {2009-01-07T00:00:00.000+0100},
  title = {NetComplex: a complexity metric for networked system designs},
  url = {http://dblp.uni-trier.de/db/conf/nsdi/nsdi2008.html#ChunRK08},
  year = 2008
}

@inproceedings{Corbett:2012,
 author = {Corbett, James C. and Dean, Jeffrey and Epstein, Michael and Fikes, Andrew and Frost, Christopher and Furman, J. J. and Ghemawat, Sanjay and Gubarev, Andrey and Heiser, Christopher and Hochschild, Peter and Hsieh, Wilson and Kanthak, Sebastian and Kogan, Eugene and Li, Hongyi and Lloyd, Alexander and Melnik, Sergey and Mwaura, David and Nagle, David and Quinlan, Sean and Rao, Rajesh and Rolig, Lindsay and Saito, Yasushi and Szymaniak, Michal and Taylor, Christopher and Wang, Ruth and Woodford, Dale},
 title = {Spanner: {Google's} globally-distributed database},
 booktitle = {Proc. OSDI'12, USENIX Symposium on Operating Systems Design and Implementation},
 year = {2012},
 isbn = {978-1-931971-96-6},
 location = {Hollywood, CA, USA},
 pages = {251--264},
 numpages = {14},
 url = {http://dl.acm.org/citation.cfm?id=2387880.2387905},
 acmid = {2387905},
 publisher = {USENIX},
} 

@inproceedings{Cousineau:2012,
  author    = {Denis Cousineau and
               Damien Doligez and
               Leslie Lamport and
               Stephan Merz and
               Daniel Ricketts and
               Hern{\'a}n Vanzetto},
  title     = {{TLA$^{+}$} Proofs},
  booktitle = {Proc. FM'12, Symposium on Formal Methods},
  year      = {2012},
  pages     = {147-154},
  ee        = {http://dx.doi.org/10.1007/978-3-642-32759-9_14},
  crossref  = {DBLP:conf/fm/2012},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@proceedings{DBLP:conf/fm/2012,
  editor    = {Dimitra Giannakopoulou and
               Dominique M{\'e}ry},
  title     = {FM 2012: Formal Methods - 18th International Symposium,
               Paris, France, August 27-31, 2012. Proceedings},
  booktitle = {FM},
  publisher = {Springer},
  series    = {Lecture Notes in Computer Science},
  volume    = {7436},
  year      = {2012},
  isbn      = {978-3-642-32758-2},
  ee        = {http://dx.doi.org/10.1007/978-3-642-32759-9},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@misc{Dean:2009,
  author = {Dean, Jeffrey},
  title = {Large-scale distributed systems at Google: current systems and future directions},
  howpublished = {LADIS'09: ACM SIGOPS International Workshop on  Large Scale Distributed Systems and Middleware (keynote talk)},
  month = october,
  year = {2009},
}

@inproceedings{Dill:1992,
 author = {Dill, David L. and Drexler, Andreas J. and Hu, Alan J. and Yang, C. Han},
 title = {Protocol verification as a hardware design aid},
 booktitle = {Proc. ICCD'92, International Conference on Computer Design},
 year = {1992},
 pages = {522--525},
 publisher = {IEEE},
}

@misc{dmpaxos,
 author = {Mazi\`{e}res, David},
 year = {2013},
 title = {Traditional Paxos (slides)},
 note = {\url{https://ramcloud.stanford.edu/~ongaro/dmpaxos.pdf}},
}

@article{Dow:2010,
 author = {Dow, Steven P. and Glassco, Alana and Kass, Jonathan and Schwarz, Melissa and Schwartz, Daniel L. and Klemmer, Scott R.},
 title = {Parallel prototyping leads to better design results, more divergence, and increased self-efficacy},
 journal = {ACM Transactions on Computer-Human Interaction},
 issue_date = {December 2010},
 volume = {17},
 number = {4},
 month = dec,
 year = {2010},
 issn = {1073-0516},
 pages = {18:1--18:24},
 articleno = {18},
 numpages = {24},
 url = {http://doi.acm.org/10.1145/1879831.1879836},
 doi = {10.1145/1879831.1879836},
 acmid = {1879836},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {Prototyping, comparison, critique, design, divergence, exploration, feedback, iteration, juxtaposition, self-efficacy},
}

@misc{eff,
  title = {Patents},
  author = {{Electronic Frontier Foundation}},
  note = {\url{https://www.eff.org/patent}},
}

@misc{Ellis:2013,
  author = {Ellis, Jonathan},
  title = {Lightweight transactions in Cassandra 2.0},
  note = {\url{http://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0}},
  month = july,
  year = {2013},
}

@inproceedings{Escriva:2012,
 author = {Escriva, Robert and Wong, Bernard and Sirer, Emin G\"{u}n},
 title = {HyperDex: a distributed, searchable key-value store},
 booktitle = {Proc. SIGCOMM'12, ACM SIGCOMM Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication},
 year = {2012},
 isbn = {978-1-4503-1419-0},
 location = {Helsinki, Finland},
 pages = {25--36},
 numpages = {12},
 url = {http://doi.acm.org/10.1145/2342356.2342360},
 doi = {10.1145/2342356.2342360},
 acmid = {2342360},
 publisher = {ACM},
}

@article{Fischer:1985,
 author = {Fischer, Michael J. and Lynch, Nancy A. and Paterson, Michael S.},
 title = {Impossibility of distributed consensus with one faulty process},
 journal = {Journal of the ACM},
 issue_date = {April 1985},
 volume = {32},
 number = {2},
 month = apr,
 year = {1985},
 issn = {0004-5411},
 pages = {374--382},
 numpages = {9},
 url = {http://doi.acm.org/10.1145/3149.214121},
 doi = {10.1145/3149.214121},
 acmid = {214121},
 publisher = {ACM},
 address = {New York, NY, USA},
}

@inproceedings{Ghemawat:2003,
 author = {Ghemawat, Sanjay and Gobioff, Howard and Leung, Shun-Tak},
 title = {The {Google} file system},
 booktitle = {Proc. SOSP'03, ACM Symposium on Operating Systems Principles},
 year = {2003},
 isbn = {1-58113-757-5},
 location = {Bolton Landing, NY, USA},
 pages = {29--43},
 numpages = {15},
 url = {http://doi.acm.org/10.1145/945445.945450},
 doi = {10.1145/945445.945450},
 acmid = {945450},
 publisher = {ACM},
 keywords = {clustered storage, data storage, fault tolerance, scalability},
}

@inproceedings{Gill:2011,
 author = {Gill, Phillipa and Jain, Navendu and Nagappan, Nachiappan},
 title = {Understanding network failures in data centers: measurement, analysis, and implications},
 booktitle = {Proc. SIGCOMM'11, ACM SIGCOMM Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication},
 year = {2011},
 isbn = {978-1-4503-0797-0},
 location = {Toronto, Ontario, Canada},
 pages = {350--361},
 numpages = {12},
 url = {http://doi.acm.org/10.1145/2018436.2018477},
 doi = {10.1145/2018436.2018477},
 acmid = {2018477},
 publisher = {ACM},
} 

@inproceedings{Glendenning:2011,
 author = {Glendenning, Lisa and Beschastnikh, Ivan and Krishnamurthy, Arvind and Anderson, Thomas},
 title = {Scalable consistency in Scatter},
 booktitle = {Proc. SOSP'11, ACM Symposium on Operating Systems Principles},
 year = {2011},
 isbn = {978-1-4503-0977-6},
 location = {Cascais, Portugal},
 pages = {15--28},
 numpages = {14},
 url = {http://doi.acm.org/10.1145/2043556.2043559},
 doi = {10.1145/2043556.2043559},
 acmid = {2043559},
 publisher = {ACM},
} 

@inproceedings{Gray:1989,
 author = {Gray, C. and Cheriton, D.},
 title = {Leases: an efficient fault-tolerant mechanism for distributed file cache consistency},
 booktitle = {Proc. SOSP'89, ACM Symposium on Operating Systems Principles},
 year = {1989},
 pages = {202--210},
 publisher = {ACM},
 url = {http://dl.acm.org/citation.cfm?id=74870},
} 

@misc{Hadoop2Release,
 title = {Apache Hadoop 2.0 (alpha) released},
 note = {\url{http://hortonworks.com/blog/apache-hadoop-2-0-alpha-released/}},
 year = {2012},
 author = {Arun Murthy},
}

@misc{HBase,
 title = {Apache HBase project website},
 note ={\url{https://hbase.apache.org}},
 key = {Apache HBase},
}


@misc{HDFSHA,
 title = {Apache Hadoop documentation: HDFS high availability},
 note = {\url{https://hadoop.apache.org/docs/r2.0.2-alpha/hadoop-yarn/hadoop-yarn-site/HDFSHighAvailability.html}},
 year = {2012},
 key = {Apache Hadoop}
}

@article{Herlihy:1990,
 author = {Herlihy, Maurice P. and Wing, Jeannette M.},
 title = {Linearizability: a correctness condition for concurrent objects},
 journal = {ACM Transactions on Programming Languages and Systems},
 volume = {12},
 issue = {3},
 month = {July},
 year = {1990},
 issn = {0164-0925},
 pages = {463--492},
 numpages = {30},
 url = {http://doi.acm.org/10.1145/78969.78972},
 doi = {http://doi.acm.org/10.1145/78969.78972},
 acmid = {78972},
 publisher = {ACM},
 address = {New York, NY, USA},
}

@misc{Hoch:2014,
 author = {Ezra Hoch},
 title = {Configuration changes},
 note = {\url{https://groups.google.com/d/msg/raft-dev/xux5HRxH3Ic/mz_PDK-qMJgJ}},
 howpublished = {raft-dev mailing list},
 year = {2014},
 month = {Feb.},
}

@techreport{Howard:2014,
  author = {Howard, Heidi},
  title = {{ARC: analysis of Raft consensus}},
  year = 2014,
  month = jul,
  note = {\url{http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-857.pdf}},
  institution =  {University of Cambridge, Computer Laboratory},
  number = {UCAM-CL-TR-857}
}

@inproceedings{Hunt:2010,
 author = {Hunt, Patrick and Konar, Mahadev and Junqueira, Flavio P. and Reed, Benjamin},
 title = {{ZooKeeper}: wait-free coordination for Internet-scale systems},
 booktitle = {Proc. ATC'10, USENIX Annual Technical Conference},
 year = {2010},
 location = {Boston, MA},
 pages = {145--158},
 numpages = {1},
 url = {http://portal.acm.org/citation.cfm?id=1855840.1855851},
 acmid = {1855851},
 publisher = {USENIX},
}

@misc{HydraBase,
 author = {Zelaine Fong and Rishit Shroff},
 title = {HydraBase: The evolution of HBase@Facebook},
 year = {2014},
 note = {\url{https://code.facebook.com/posts/321111638043166/hydrabase-the-evolution-of-hbase-facebook/}},
}

@misc{hyperleveldb,
 title = {HyperLevelDB performance benchmarks},
 note = {\url{http://hyperdex.org/performance/leveldb/}},
 key = {hyperleveldb},
}

@misc{impl:rafter,
 author = {Andrew J. Stone},
 title = {{Rafter} source code},
 note = {\url{https://github.com/andrewjstone/rafter}},
}

@misc{impl:akka-raft,
 author = {Konrad Malawski},
 title = {{akka-raft} source code},
 note = {\url{https://github.com/ktoso/akka-raft}},
}

@misc{impl:archie-raft,
 author = {Marcus Ljungblad},
 title = {{archie/raft} source code},
 note = {\url{https://github.com/archie/raft}},
}

@misc{impl:kanaka-raft-js,
 author = {Joel Martin},
 title = {{Raft.js} (kanaka) source code},
 note = {\url{https://github.com/kanaka/raft.js}},
}

@misc{impl:barge,
 author = {Dave Rusek and Arnaud Bailly},
 title = {{Barge} source code},
 note = {\url{https://github.com/mgodave/barge}},
}

@misc{impl:kontiki,
 author = {Nicolas Trangez},
 title = {{Kontiki} source code},
 note = {\url{https://github.com/NicolasT/kontiki}},
}

@misc{impl:ocaml-raft,
 author = {Heidi Howard},
 title = {{ocaml-raft} source code},
 note = {\url{https://github.com/heidi-ann/ocaml-raft}},
}

@misc{implementations,
 title = {Raft consensus algorithm website},
 note = {\url{http://raftconsensus.github.io}},
 key = {Raft},
}

@article{Isard:2007,
 author = {Isard, Michael},
 title = {Autopilot: automatic data center management},
 journal = {SIGOPS Operating Systems Review},
 issue_date = {April 2007},
 volume = {41},
 number = {2},
 month = apr,
 year = {2007},
 issn = {0163-5980},
 pages = {60--67},
 numpages = {8},
 url = {http://doi.acm.org/10.1145/1243418.1243426},
 doi = {10.1145/1243418.1243426},
 acmid = {1243426},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {automatic management, cluster computing},
}


@inproceedings{Junqueira:2011,
 author = {Junqueira, Flavio P. and Reed, Benjamin C. and Serafini, Marco},
 title = {Zab: high-performance broadcast for primary-backup systems},
 booktitle = {Proc. DSN'11, IEEE/IFIP Conference on Dependable Systems and Networks},
 year = {2011},
 isbn = {978-1-4244-9232-9},
 pages = {245--256},
 numpages = {12},
 url = {http://dx.doi.org/10.1109/DSN.2011.5958223},
 doi = {10.1109/DSN.2011.5958223},
 acmid = {2056409},
 publisher = {IEEE},
}

@techreport{Junqueira:2010,
 author = {Junqueira, Flavio P. and Reed, Benjamin C. and Serafini, Marco},
 title = {Dissecting Zab},
 year = {2010},
 institution = {Yahoo! Research},
 number = {YL-2010-0007},
 note = {\url{http://labs.yahoo.com/files/YL-2010-007.pdf}},
}

@misc{Kanthak:2013,
 author = {Sebastian Kanthak},
 title = {Spanner: Google's distributed database},
 howpublished = {Strange Loop (conference talk)},
 note = {\url{http://www.infoq.com/presentations/spanner-distributed-google}},
 month = sep,
 year = {2013},
}

@unpublished{Kingsbury:Jepsen,
 author = {Kyle Kingsbury},
 title = {Jepsen series of articles on network partitions},
 year = {2013--2014},
 note = {\url{http://aphyr.com/tags/jepsen}},
}

@unpublished{Kingsbury:etcdconsul,
 author = {Kyle Kingsbury},
 title = {Call me maybe: etcd and Consul},
 year = {2014},
 note = {\url{http://aphyr.com/posts/316-call-me-maybe-etcd-and-consul}},
}

@inproceedings{Kirsch:2008,
 author = {Kirsch, Jonathan and Amir, Yair},
 title = {Paxos for system builders: an overview},
 booktitle = {Proc. LADIS'08, Workshop on Large-Scale Distributed Systems and Middleware},
 year = {2008},
 isbn = {978-1-60558-296-2},
 location = {Yorktown Heights, New York},
 pages = {3:1--3:6},
 articleno = {3},
 numpages = {6},
 url = {http://doi.acm.org/10.1145/1529974.1529979},
 doi = {10.1145/1529974.1529979},
 acmid = {1529979},
 publisher = {ACM},
}

@article{Lamport:1978,
 author = {Lamport, Leslie},
 title = {Time, clocks, and the ordering of events in a distributed system},
 journal = {Communications of the ACM},
 issue_date = {July 1978},
 volume = {21},
 number = {7},
 month = jul,
 year = {1978},
 issn = {0001-0782},
 pages = {558--565},
 numpages = {8},
 url = {http://doi.acm.org/10.1145/359545.359563},
 doi = {10.1145/359545.359563},
 acmid = {359563},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {clock synchronization, computer networks, distributed systems, multiprocess systems},
}

@article{Lamport:1998,
 author = {Lamport, Leslie},
 title = {The part-time parliament},
 journal = {ACM Transactions on Computer Systems},
 issue_date = {May 1998},
 volume = {16},
 number = {2},
 month = may,
 year = {1998},
 issn = {0734-2071},
 pages = {133--169},
 numpages = {37},
 url = {http://doi.acm.org/10.1145/279227.279229},
 doi = {10.1145/279227.279229},
 acmid = {279229},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {state machines, three-phase commit, voting},
} 

@article{Lamport:1999,
 author = {Lamport, Leslie and Paulson, Lawrence C.},
 title = {Should your specification language be typed?},
 journal = {ACM Transactions on Programming Languages and Systems},
 issue_date = {May 1999},
 volume = {21},
 number = {3},
 month = may,
 year = {1999},
 issn = {0164-0925},
 pages = {502--526},
 numpages = {25},
 url = {http://doi.acm.org/10.1145/319301.319317},
 doi = {10.1145/319301.319317},
 acmid = {319317},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {set theory, specification, types},
} 

@article{Lamport:2001,
    author = {Lamport, Leslie},
    citeulike-article-id = {541278},
    journal = {ACM SIGACT News},
    keywords = {bibtex-import},
    month = dec,
    number = {4},
    pages = {18--25},
    posted-at = {2006-03-09 04:35:31},
    priority = {2},
    title = {Paxos made simple},
    volume = {32},
    year = {2001}
}

@book{Lamport:2002,
  author    = {Leslie Lamport},
  title     = {Specifying Systems, The TLA+ Language and Tools for Hardware
               and Software Engineers},
  publisher = {Addison-Wesley},
  year      = {2002},
  isbn      = {0-3211-4306-X},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{Lamport:2004,
 author = {Lamport, Leslie and Massa, Mike},
 title = {Cheap Paxos},
 booktitle = {Proc. DSN'04, Conference on Dependable Systems and Networks},
 year = {2004},
 isbn = {0-7695-2052-9},
 pages = {307--314},
 url = {http://dl.acm.org/citation.cfm?id=1009382.1009745},
 acmid = {1009745},
 publisher = {IEEE},
} 

@techreport{Lamport:2005,
    author = {Lamport, Leslie},
    citeulike-article-id = {2069167},
    citeulike-linkout-0 = {ftp://ftp.research.microsoft.com/pub/tr/TR-2005-33.pdf},
    citeulike-linkout-1 = {http://research.microsoft.com/research/pubs/view.aspx?type=Technical\%20Report\&\#38;id=884},
    institution = {Microsoft},
    month = mar,
    number = {MSR-TR-2005-33},
    posted-at = {2011-08-06 18:35:45},
    priority = {2},
    title = {{Generalized consensus and Paxos}},
    note = {\url{https://research.microsoft.com/pubs/64631/tr-2005-33.pdf}},
    year = {2005}
}

@article{Lamport:2006,
 year={2006},
 issn={0178-2770},
 journal={Distributed Computing},
 volume={19},
 number={2},
 doi={10.1007/s00446-006-0005-x},
 title={Fast Paxos},
 url={http://dx.doi.org/10.1007/s00446-006-0005-x},
 publisher={Springer-Verlag},
 keywords={Consensus; Fault tolerance; Distributed algorithms; Paxos},
 author={Lamport, Leslie},
 pages={79-103},
 language={English}
}

@misc{Lamport:2007,
  title={Multi-leader distributed system},
  author={Lamport, L. and Hydrie, A. and Achlioptas, D.},
  url={https://www.google.com/patents/US7260611},
  year={2007},
  month=aug,
  publisher={Google Patents},
  note={US Patent 7,260,611}
}

@misc{Lamport:2009,
  title={Fast Paxos recovery},
  author={Lamport, L.B.},
  url={https://www.google.com/patents/US7555516},
  year={2009},
  month=jun,
  publisher={Google Patents},
  note={US Patent 7,555,516}
}

@misc{Lamport:2010,
  title={Generalized Paxos},
  author={Lamport, L.B.},
  url={https://www.google.com/patents/US7698465},
  year={2010},
  month=apr,
  publisher={Google Patents},
  note={US Patent 7,698,465}
}

@misc{Lamport:2010cheap,
  title={Cheap Paxos},
  author={Lamport, L.B. and Massa, M.T.},
  url={https://www.google.com/patents/US7856502},
  year={2010},
  month=dec,
  publisher={Google Patents},
  note={US Patent 7,856,502}
}

@inproceedings{Lamport:2011,
 author = {Lamport, Leslie},
 title = {Byzantizing Paxos by refinement},
 booktitle = {Proc. DISC'11, International Symposium on Distributed Computing},
 year = {2011},
 isbn = {978-3-642-24099-7},
 location = {Rome, Italy},
 pages = {211--224},
 numpages = {14},
 url = {http://dl.acm.org/citation.cfm?id=2075029.2075058},
 acmid = {2075058},
 publisher = {Springer-Verlag},
} 

@misc{Lamport:2013e,
 author = {Lamport, L.},
 howpublished = {Personal communications, including TLAPS proof for single-decree Paxos},
 month = feb,
 year = {2013}
}

@incollection{Lampson:1996,
  title = {How to build a highly available system using consensus},
  author = {Lampson, Butler W.},
  booktitle={Distributed Algorithms},
  editor={Baboaglu, O. and Marzullo, K.},
  pages={1--17},
  year={1996},
  publisher={Springer-Verlag}
}

@misc{Lampson:2001,
 author = {Lampson, Butler W.},
 title = {The {ABCD's} of {Paxos}},
 howpublished = {PODC'01: ACM Symposium on Principles of Distributed Computing (invited talk)},
 year = {2001},
 pages = {13--13},
 publisher = {ACM},
 note = {\url{http://research.microsoft.com/en-us/um/people/blampson/65-ABCDPaxos/Abstract.html}},
}

@misc{leveldb,
 title = {LevelDB: a fast and lightweight key/value database library by Google (source code)},
 note = {\url{https://code.google.com/p/leveldb/}},
 key = {leveldb},
}

@misc{leveldb:compactions,
 title = {LevelDB documentation: file layout and compactions},
 note = {\url{https://leveldb.googlecode.com/svn/trunk/doc/impl.html}},
 key = {leveldb},
}

@inproceedings{Liskov:1991,
 author = {Liskov, Barbara and Ghemawat, Sanjay and Gruber, Robert and Johnson, Paul and Shrira, Liuba and Williams, Michael},
 title = {Replication in the Harp file system},
 booktitle = {Proc. SOSP'91, ACM Symposium on Operating Systems Principles},
 year = {1991},
 pages = {226--238},
 publisher = {ACM},
}

@inproceedings{Liskov:2010,
  added-at = {2010-09-14T00:00:00.000+0200},
  author = {Liskov, Barbara},
  biburl = {http://www.bibsonomy.org/bibtex/26ba48edbcf5fa21976b0925b21f32b43/dblp},
  booktitle = {Replication},
  editor = {Charron-Bost, Bernadette and Pedone, Fernando and Schiper, André},
  ee = {http://dx.doi.org/10.1007/978-3-642-11294-2_7},
  interhash = {5c3ff532ab82005b6e1d5f8492477eb9},
  intrahash = {6ba48edbcf5fa21976b0925b21f32b43},
  isbn = {978-3-642-11293-5},
  keywords = {dblp},
  pages = {121-149},
  publisher = {Springer},
  series = {Lecture Notes in Computer Science},
  timestamp = {2010-09-14T00:00:00.000+0200},
  title = {From Viewstamped Replication to Byzantine fault tolerance.},
  url = {http://dblp.uni-trier.de/db/conf/replication/replication2010.html#Liskov10},
  volume = 5959,
  year = 2010
}

@techreport{Liskov:2012,
    author = {Liskov, Barbara and Cowling, James},
    institution = {MIT},
    title = {Viewstamped Replication revisited},
    year = {2012},
    month = jul,
    number = {MIT-CSAIL-TR-2012-021},
    note = {\url{http://pmg.csail.mit.edu/papers/vr-revisited.pdf}},
}

@misc{logcabin,
 author = {Diego Ongaro},
 title = {{LogCabin} source code},
 note = {\url{https://github.com/logcabin/logcabin}},
 key = {Logcabin},
}

@inproceedings{Lorch:2006,
 author = {Lorch, Jacob R. and Adya, Atul and Bolosky, William J. and Chaiken, Ronnie and Douceur, John R. and Howell, Jon},
 title = {The {SMART} way to migrate replicated stateful services},
 booktitle = {Proc. EuroSys'06, ACM SIGOPS/EuroSys European Conference on Computer Systems},
 year = {2006},
 isbn = {1-59593-322-0},
 location = {Leuven, Belgium},
 pages = {103--115},
 numpages = {13},
 url = {http://doi.acm.org/10.1145/1217935.1217946},
 doi = {10.1145/1217935.1217946},
 acmid = {1217946},
 publisher = {ACM},
}

@misc{lvm,
 title = {LVM2 (Linux Volume Management) resource page},
 key = {LVM},
 note = {\url{https://sourceware.org/lvm2/}},
}

@book{Lynch:1996,
 author = {Lynch, Nancy A.},
 title = {Distributed Algorithms},
 year = {1996},
 isbn = {1558603484},
 publisher = {Morgan Kaufmann Publishers Inc.},
}

@inproceedings{MacCormick:2004,
 author = {MacCormick, John and Murphy, Nick and Najork, Marc and Thekkath, Chandramohan A. and Zhou, Lidong},
 title = {Boxwood: abstractions as the foundation for storage infrastructure},
 booktitle = {Proc. OSDI'04, USENIX Symposium on Operating Systems Design and Implementation},
 year = {2004},
 location = {San Francisco, CA},
 pages = {105--120},
 numpages = {1},
 url = {http://dl.acm.org/citation.cfm?id=1251254.1251262},
 acmid = {1251262},
 publisher = {USENIX},
} 

@inproceedings{Mao:2008,
 author = {Mao, Yanhua and Junqueira, Flavio P. and Marzullo, Keith},
 title = {Mencius: building efficient replicated state machines for {WANs}},
 booktitle = {Proc. OSDI'08, USENIX Symposium on Operating Systems Design and Implementation},
 year = {2008},
 location = {San Diego, California},
 pages = {369--384},
 numpages = {16},
 url = {http://dl.acm.org/citation.cfm?id=1855741.1855767},
 acmid = {1855767},
 publisher = {USENIX},
}

@INPROCEEDINGS{Martin:2005,
    author = {Jean-Philippe Martin and Lorenzo Alvisi},
    title = {Fast Byzantine consensus},
    booktitle = {IEEE Transactions on Dependable and Secure Computing},
    year = {2005},
    pages = {402--411},
    publisher = {}
}

@unpublished{Mazieres:2007,
    author = {Mazi\`{e}res, David},
    citeulike-article-id = {2064781},
    citeulike-linkout-0 = {http://www.scs.stanford.edu/\~{}dm/home/papers/paxos.pdf},
    month = jan,
    posted-at = {2007-12-06 02:04:47},
    priority = {0},
    title = {Paxos Made Practical},
    note = {[Despite its name, the subject of this paper more closely resembles
Viewstamped Replication, not Paxos.]
\url{http://www.scs.stanford.edu/\~dm/home/papers/paxos.pdf}},
    year = {2007}
}

@inproceedings{Moraru:2013,
 author = {Moraru, Iulian and Andersen, David G. and Kaminsky, Michael},
 title = {There is more consensus in egalitarian parliaments},
 booktitle = {Proc. SOSP'13, ACM Symposium on Operating Systems Principles},
 year = {2013},
 pages = {358--372},
 publisher = {ACM},
}

@techreport{Moraru:2013tr,
 author = {Moraru, Iulian and Andersen, David G. and Kaminsky, Michael},
 title = {A proof of correctness for Egalitarian Paxos},
 year = {2013},
 institution = {Parallel Data Laboratory, Carnegie Mellon University},
 number = {CMU-PDL-13-111},
 note = {\url{http://www.pdl.cmu.edu/PDL-FTP/associated/CMU-PDL-13-111.pdf}},
}

@inproceedings{Oki:1988,
 author = {Oki, Brian M. and Liskov, Barbara H.},
 title = {Viewstamped Replication: a new primary copy method to support highly-available distributed systems},
 booktitle = {Proc. PODC'88, ACM Symposium on Principles of Distributed Computing},
 year = {1988},
 isbn = {0-89791-277-2},
 location = {Toronto, Ontario, Canada},
 pages = {8--17},
 numpages = {10},
 url = {http://doi.acm.org/10.1145/62546.62549},
 doi = {10.1145/62546.62549},
 acmid = {62549},
 publisher = {ACM},
} 

@PhdThesis{Oki:1988t,
 title = {Viewstamped Replication for highly available distributed systems},
 author = {Oki, Brian M.},
 school = {Massachusetts Institute of Technology},
 month = aug,
 year = {1988},
 note = {MIT-LCS-TR-423. \url{http://pmg.csail.mit.edu/papers/MIT-LCS-TR-423.pdf}},
}

@article{ONeil:1996,
  year={1996},
  issn={0001-5903},
  journal={Acta Informatica},
  volume={33},
  number={4},
  doi={10.1007/s002360050048},
  title={The log-structured merge-tree ({LSM}-tree)},
  url={http://dx.doi.org/10.1007/s002360050048},
  publisher={Springer-Verlag},
  author={O'Neil, Patrick and Cheng, Edward and Gawlick, Dieter and O'Neil, Elizabeth},
  pages={351-385},
  language={English}
}

@article{Ousterhout:2011,
 author = {Ousterhout, John and Agrawal, Parag and Erickson, David and Kozyrakis, Christos and Leverich, Jacob and Mazi\`{e}res, David and Mitra, Subhasish and Narayanan, Aravind and Ongaro, Diego and Parulkar, Guru and Rosenblum, Mendel and Rumble, Stephen M. and Stratmann, Eric and Stutsman, Ryan},
 title = {The case for {RAMCloud}},
 journal = {Communications of the ACM},
 volume = {54},
 issue = {7},
 month = {July},
 year = {2011},
 issn = {0001-0782},
 pages = {121--130},
 numpages = {10},
 url = {http://portal.acm.org/citation.cfm?id=1965751},
 doi = {http://doi.acm.org/10.1145/1965724.1965751},
 acmid = {1965751},
 publisher = {ACM},
 address = {New York, NY, USA},
}

@article{Prisco:2000,
  author    = {Roberto De Prisco and
               Butler W. Lampson and
               Nancy A. Lynch},
  title     = {Revisiting the Paxos algorithm},
  journal   = {Theoretical Computer Science},
  volume    = {243},
  number    = {1-2},
  year      = {2000},
  pages     = {35-91},
  ee        = {http://dx.doi.org/10.1016/S0304-3975(00)00042-6},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{raftatc,
 author = {Ongaro, Diego and Ousterhout, John},
 title = "In Search of an Understandable Consensus Algorithm",
 booktitle = {Proc. ATC'14, USENIX Annual Technical Conference},
 year = {2014},
 publisher = {USENIX},
}

@misc{rafttechreport,
 author = {Ongaro, Diego and Ousterhout, John},
 title = "In Search of an Understandable Consensus Algorithm (Extended Version)",
 note = {\\\url{http://ramcloud.stanford.edu/raft.pdf}},
 year = {2014},
}

@misc{raft.tla,
 author = {Ongaro, Diego},
 year = {2014},
 title = "{Formal specification for Raft (source file)}",
 note = {\url{https://ramcloud.stanford.edu/~ongaro/raft.tla}},
}

@misc{Rao:2013,
 author = {Jun Rao},
 month = feb,
 year = {2013},
 title = {Intra-cluster replication for Apache Kafka},
 note = {\url{http://www.slideshare.net/junrao/kafka-replication-apachecon2013}},
 howpublished = {ApacheCon NA (conference talk)},
}

@misc{Reed:2010,
  title={Restoring a database using fuzzy snapshot techniques},
  author={Reed, B.C. and Bohannon, P.},
  url={https://www.google.com/patents/US7725440},
  year={2010},
  month=may,
  publisher={Google Patents},
  note={US Patent 7,725,440}
}

@inproceedings{Renesse:2004,
  author = {Robbert van Renesse and Fred B. Schneider},
  title = {Chain replication for supporting high throughput and availability},
  booktitle = {Proc. OSDI'04, USENIX Symposium on Operating Systems Design and Implementation},
  year = 2004,
  pages = {91--104},
 publisher = {USENIX},
}

@techreport{Renesse:2011,
    author = {van Renesse, Robbert},
    institution = {Cornell University},
    title = {Paxos made moderately complex},
    year = {2012},
    note = {\url{http://www.cs.cornell.edu/home/rvr/Paxos/paxos.pdf}},
}

@article{Renesse:2014,
  author = {Robbert van Renesse and Nicolas Schiper and Fred B. Schneider},
  title = {Vive la diff\'{e}rence: Paxos vs. Viewstamped Replication vs. Zab},
  journal = {IEEE Transactions on Dependable and Secure Computing},
  year = 2014
}

@misc{Riak,
 title = {Basho Riak project website},
 note = {\url{http://basho.com/riak}},
 key = {basho},
}

@misc{rocksdb,
 title = {RocksDB: a persistent key-value store for fast storage environments},
 note = {\url{http://rocksdb.org}},
 key = {rocksdb},
}

@article{Rosenblum:1992,
 author = {Rosenblum, Mendel and Ousterhout, John K.},
 title = {The design and implementation of a log-structured file system},
 journal = {ACM Transactions on Computer Systems},
 volume = {10},
 issue = {1},
 month = feb,
 year = {1992},
 issn = {0734-2071},
 pages = {26--52},
 numpages = {27},
 url = {http://doi.acm.org/10.1145/146941.146943},
 doi = {http://doi.acm.org/10.1145/146941.146943},
 acmid = {146943},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {Unix, disk storage management, fast crash recovery, file system organization, file system performance, high write performance, log-structured, logging},
}

@PhdThesis{rumble:2014,
 title = {Memory and object management in RAMCloud},
 author = {Rumble, Stephen M.},
 school = {Stanford University},
 month = mar,
 year = {2014},
 note = {\url{http://purl.stanford.edu/bx554qk6640}},
}

@inproceedings{Santos:2012,
 author = {Santos, Nuno and Schiper, Andr{\'e}},
 title = {Tuning Paxos for high-throughput with batching and pipelining},
 booktitle = {Proc. ICDCN'12, International Conference on Distributed Computing and Networking},
 year = {2012},
 isbn = {978-3-642-25958-6},
 location = {Hong Kong, China},
 pages = {153--167},
 numpages = {15},
 url = {http://dx.doi.org/10.1007/978-3-642-25959-3_11},
 doi = {10.1007/978-3-642-25959-3_11},
 acmid = {2183688},
 publisher = {Springer-Verlag},
} 

@inproceedings{Schiper:2014,
  author = {Schiper, Nicolas and Rahli, Vincent and van Renesse, Robbert and Bickford, Mark and Constable, Robert L.},
  title = {Developing correctly replicated databases using formal tools},
  year = {2014},
  booktitle = {Proc. DSN'14, IEEE/IFIP International Conference on Dependable Systems and Networks},
}

@article{Schneider:1990,
 author = {Schneider, Fred B.},
 title = {Implementing fault-tolerant services using the state machine approach: a tutorial},
 journal = {ACM Computing Surveys},
 issue_date = {Dec. 1990},
 volume = {22},
 number = {4},
 month = dec,
 year = {1990},
 issn = {0360-0300},
 pages = {299--319},
 numpages = {21},
 url = {http://doi.acm.org/10.1145/98163.98167},
 doi = {10.1145/98163.98167},
 acmid = {98167},
 publisher = {ACM},
 address = {New York, NY, USA},
}

@inproceedings{Schroeder:2007,
 author = {Schroeder, Bianca and Gibson, Garth A.},
 title = {Disk failures in the real world: what does an MTTF of 1,000,000 hours mean to you?},
 booktitle = {Proc. FAST'07, USENIX Conference on File and Storage Technologies},
 year = {2007},
 location = {San Jose, CA},
 articleno = {1},
 url = {http://dl.acm.org/citation.cfm?id=1267903.1267904},
 acmid = {1267904},
 publisher = {USENIX},
 pages = {1--16},
} 

@inproceedings{Shraer:2012,
 author = {Shraer, Alexander and Reed, Benjamin and Malkhi, Dahlia and Junqueira, Flavio},
 title = {Dynamic reconfiguration of primary/backup clusters},
 booktitle = {Proc. ATC'12, USENIX Annual Technical Conference},
 year = {2012},
 location = {Boston, MA},
 pages = {425--437},
 numpages = {1},
 url = {http://dl.acm.org/citation.cfm?id=2342821.2342860},
 acmid = {2342860},
 publisher = {USENIX},
}

@inproceedings{Shvachko:2010,
 author = {Shvachko, Konstantin and Kuang, Hairong and Radia, Sanjay and Chansler, Robert},
 title = {The Hadoop distributed file system},
 booktitle = {Proc. MSST'10, IEEE Symposium on Mass Storage Systems and Technologies},
 year = {2010},
 isbn = {978-1-4244-7152-2},
 pages = {1--10},
 numpages = {10},
 url = {http://dx.doi.org/10.1109/MSST.2010.5496972},
 doi = {10.1109/MSST.2010.5496972},
 acmid = {1914427},
 publisher = {IEEE},
}

@misc{study,
 author = {Diego Ongaro and John Ousterhout},
 title = "Raft user study materials",
 note = {\url{http://ramcloud.stanford.edu/~ongaro/userstudy/}},
}

@misc{tmpfs,
 title = {Linux documentation: tmpfs filesystem},
 note = {\url{https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt}},
 key = {Linux},
}

@misc{Varda:2008,
  added-at = {2011-06-03T12:52:14.000+0200},
  author = {Varda, Kenton},
  biburl = {http://www.bibsonomy.org/bibtex/2fa05cec6c00ece80a4644756ad82b302/voj},
  institution = {Google},
  interhash = {3ecd49f2857e154472b259c2ad1a9ff2},
  intrahash = {fa05cec6c00ece80a4644756ad82b302},
  timestamp = {2011-06-03T12:52:14.000+0200},
  title = {Protocol Buffers: Google's data interchange format},
  note = {\url{http://google-opensource.blogspot.com/2008/07/protocol-buffers-googles-data.html}},
  year = 2008
}

@inproceedings{Weil:2006,
  author = {Sage Weil and Scott A. Brandt and Ethan L. Miller and Darrell D. E. Long and Carlos Maltzahn},
  title = {Ceph: a scalable, high-performance distributed file system},
  booktitle = {Proc. OSDI'06, USENIX Symposium on Operating Systems Design and Implementation},
  year = {2006},
  pages = {307--320},
 publisher = {USENIX},
}

@misc{ZooKeeperPersonalCommunication,
 author = {Reed, B.},
 howpublished = {Personal communications},
 month = {May 17,},
 year = {2013}
}

@misc{ZOOKEEPER-107,
 title = {ZOOKEEPER-107: allow dynamic changes to server cluster membership (issue tracker)},
 note = {\url{https://issues.apache.org/jira/browse/ZOOKEEPER-107}},
 key = {ZOOKEEPER},
}
